Defensive Certification in Coq with ML Type-Safe Oracles
نویسنده
چکیده
Initially promoted by CompCert, the embedding of untrusted Ocaml code into extracted code from Coq – through a skeptical approach – significantly simplifies Coq developments of formally proved software. However, as illustrated by various examples of this paper, such an embedding could be unsound. This paper conjectures sufficient conditions to ensure soundness. And, it illustrates the power of these conditions on the ultra-lightweight certification of an UNSAT-prover: its Coq sources (less than 250 lines) have been developed in around one man·day.
منابع مشابه
Proving ML Type Soundness Within Coq
We verify within the Coq proof assistant that ML typing is sound with respect to the dynamic semantics. We prove this property in the framework of a big step semantics and also in the framework of a reduction semantics. For that purpose, we use a syntax-directed version of the typing rules: we prove mechanically its equivalence with the initial type system provided by Damas and Milner. This wor...
متن کاملVerifying Functional Bulk Synchronous Parallel Programs Using the Coq System
The Bulk Synchronous Parallel ML (BSML) is a functional language for Bulk Synchronous Parallel (BSP) programming. It is based on an extension of the λ-calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. We present the formal proofs of correctness of BSML programs in the Coq proof assistant. Such development demonstrates the usefulness...
متن کاملCertified Web Services in Ynot
In this paper we demonstrate that it is possible to implement certified web systems in a way not much different from writing Standard ML or Haskell code, including use of imperative features like pointers, files, and socket I/O. We present a web-based course gradebook application developed with Ynot, a Coq library for certified imperative programming. We add a dialog-based I/O system to Ynot, a...
متن کاملUne bibliothèque certifiée de programmes fonctionnels BSP
The Bulk-Synchronous Parallel ML (BSML) is a functional language for BSP programming, a model of computing which allows parallel programs to be ported to a wide range of architectures. It is based on an extension of the ML language by parallel operations on a parallel data structure called parallel vector, which is given by intention. We present the certification of a library of BSML programs w...
متن کاملRefinement calculus for a simple certification of static polyhedral analysis with code transformations
A static analyzer such as ASTRÉE [CCF05, BCC10] is able to ensure safety of critical software, i.e. the absence of runtime overflows. But ASTRÉE is itself a very complex software and its full formal verification seems currently impossible. A more feasible alternative might be to make the analyzer produce a formally verifiable certificate. Such a certificate would summarize the proof of safety f...
متن کامل